Отже, у мене виникають проблеми з з’ясуванням правильного використання list :: sort () щодо списку структур. Ось відповідний код: структура студент { char firstnm [20], lastnm [20]; int id, сорт; }; listsList; // Нерелевантний код ... cout << "Будь ласка, введіть своє ім'я, ідентифікатор та оцінку. (Наприклад: myfirst mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (дані); sList.sort (); Проблема, яку я намагаюся вирішити, полягає у використанні sList.sort () для сортування за ідентифікатором. Однак я не уявляю, як правильно передати його в list :: sort (). Заздалегідь дякуємо за будь-яку допомогу / час! EDIT: Рішення просто додало це до моєї структури оператор bool <(const student & cmp) const { повернути ідентифікатор
2021-01-22 08:22:17
Ви повинні поглянути на std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Існує кілька визначень цієї функції, і одне, де ви можете вказати, що ви хочете сортувати. Крім того, погляньте на цю публікацію, я думаю, що це те, що вам потрібно: https://stackoverflow.com/a/21234017/6663947 Редагувати: це приклад компаратора: sList.sort ([] (const student & a, const student & b) {return a.idсортування порожнеч (порівняти комп); Припускаючи, що ви хочете відсортувати об'єкти студента у вашому списку за ідентифікатором ключа у порядку зростання. Ви можете визначити оператор <для визначеного користувачем класу студента як: оператор bool <(студент const & a, студент const & b) { повернути a.id